/**
 * 队列化请求辅助函数
 * 用于在组件中方便地使用请求队列
 */
import requestQueue from './requestQueue.js'

/**
 * 创建一个队列化的fetch请求
 * @param {string} url - 请求URL
 * @param {Object} options - fetch选项
 * @param {Object} queueOptions - 队列选项
 * @returns {Promise}
 */
export async function queuedFetch(url, options = {}, queueOptions = {}) {
  return requestQueue.add(
    () => fetch(url, options),
    queueOptions
  )
}

/**
 * 创建一个队列化的异步函数
 * @param {Function} fn - 异步函数
 * @param {Object} queueOptions - 队列选项
 * @returns {Promise}
 */
export async function queuedAsync(fn, queueOptions = {}) {
  return requestQueue.add(fn, queueOptions)
}

export default {
  queuedFetch,
  queuedAsync,
  queue: requestQueue
}

